Signaling system for telecommunications

ABSTRACT

A pair of devices ( 400, 401 ) appear to be a Common Channel Signaling (CCS) network nodes on each end of a point-to-point digital data link, that is, a normal CCS signaling link ( 402, 403 ). Multiple transport methods may be used to provide a redundant and diverse path for the signaling link. These methods include the encapsulation of the CCS protocol, at one or more layers, within other network protocols. In another embodiment, the present invention implements a virtual Signal Transfer Point by means of one or more encapsulating STPs (eSTPs). A packet data network ( 408 ) using standard packet-switched data protocols, rather than a backplane bus or special-purpose network, connects the encapsulating STPs ( 405, 406 ), and CCS messages are dynamically routed across the internal packet data nework to an appropriate eSTP for transmission to the appropriate next hop address. The entire group of eSTIPs appears to be one STP to the CCS network, but on the internal packet data network each eSTP operates as an autonomous message router for CCS traffic.

This application claims the benefit of provisional applications No.60/110,398 filed Dec. 1, 1998 and No. 60/132,552 filed May 5, 1999.

BACKGROUND OF THE INVENTION

In modern telephone networks, the voice path between a calling party anda called party and the signaling path which is used to controlcall-processing (call setup, tear-down, billing, etc.) are distinct.This network architecture is known as a “Common Channel Signaling”(“CCS”) architecture and is common throughout the North American PublicSwitched Telephone Network (“PSTN”) and other telephone carrier networksworldwide.

The CCS architecture enables rapid call setup and tear-down as well asmany advanced services (i.e. Alternate Billing Services, “800” toll-freecalling, Intelligent Network services, wireless roaming, Local NumberPortability). In the CCS, telephone switches are connected directly toeach other by voice trunks (as in previous architectures) and are alsoconnected by a parallel network of signaling links, which arepoint-to-point digital data circuits generally operating at 56 kilobitsper second or 64 kilobits per second. When a telephone call isinitiated, messages are sent across the signaling links to cause voicetrunks to be allocated from switch to switch in the call path.Throughout the duration of the call, and at the end of the call, othermessages are sent back and forth across the signaling links,independently of the voice path established between calling and calledparty over the separate, parallel network of voice trunks.

Generally, in the CCS architecture, voice switches (“SSP”, “ServiceSwitching Points” or “Signal Switching Points”) are connected bysignaling links to specialized packet switches or “Signal TransferPoints” (“STP”s) which route signaling messages among themselves and tothe SSPs which may be their originating or destination points. Advancedservices are provided by other nodes in the network such as “ServiceControl Points” (“SCP”s), databases which store call procedures andwhich are connected to STPs by signaling links. For example, when an“800” toll-free call is dialed, the caller's SSP sends a query messageacross a signaling link to an STP, which routes it across one or morefurther signaling links (possibly transiting other STPs) to an SCP,which responds by sending a message containing the actual telephonenumber to which to route the call across the signaling network to theSSP, which then sends further signaling messages across the signalingnetwork to other SSPs in order to set up voice trunks and connect thecall. A single call routed across voice trunks may actually involve manydistinct exchanges of signaling messages across the signaling links inthe signaling network, though to calling and called party the existenceof the signaling network is never evident at all.

Obviously, were nodes in the CCS network connected by single signalinglinks from point to point, a link failure might have grave consequences.With no means of transmitting or receiving the signaling messages whichcontrol voice trunks, switches could not set up or tear down calls;whether the voice trunks themselves were in or out of service, theswitches could not even attempt to place calls across them, and many ormost calls from switches isolated from the CCS network by signaling linkfailure would simply never be completed. Other related failures wouldimpact every service provided by such an isolated switch which made useof the CCS network.

To prevent such catastrophic failures, links in the CCS network aregrouped together into “linksets”; linksets are sets of signaling linksconnecting two nodes in the network which are both redundant, meaningthat there is more than one link from point to point, and physicallydiverse, meaning that the redundant links are never on the same physicalfacilities at any point between the two ends of the circuit (i.e. twolinks which are “physically diverse” must never be multiplexed onto thesame cable, must never be routed through devices which draw electricalpower from the same circuits, must not be placed on two separate cableswhich travel in the same underground conduit, nor in any other way besubject to a single physical event which might eliminate both linksbetween the two endpoints). Generally, networks are engineered for atleast three-way redundancy and physical diversity. This involves greatexpense and effort; and as the underlying physical facilities change(i.e. two separate fiber optic cables are replaced by a single cablewith a higher capacity) great care must be taken to ensure thatredundancy and physical diversity are maintained.

Clearly, a means of automatically providing this redundancy anddiversity would save great expense and effort, and potentially improvethe reliability of the PSTN. Furthermore, as the expense and effort ofprovisioning and maintaining redundant and physically diverse signalinglinks is a major factor preventing many smaller carriers (such as smallrural telephone companies, competitive local exchange carriers(“CLEC”s), etc.) from adopting the CCS architecture and using it(instead of older methods) to connect to the PSTN, a means ofautomatically providing this redundancy and diversity would be of greatutility to such carriers.

Where other contemporary network architectures deploy many relativelyinexpensive, high-performance packet routers, the CCS signaling networkgenerally deploys a small number of extremely large and complex routerseach aggregating tens or hundreds of signaling links. A consequence ofthis architectural decision is that these routers (STPs) are extremelyexpensive. While the router connecting a local area network to thebackbone of a Transmission Control Protocol/Internet Protocol (“TCP/IP”)network may have four network interfaces (or even less) and cost under$5,000, it is extremely unusual to find a STP with less than dozens ofsignaling links, and STP prices are at least ten times those of small ormid-sized TCP/IP routers. At the same time, STPs offer comparativelylittle performance to justify their extremely high prices. While eventhe most inexpensive TCP/IP routers can typically route a message whileimposing a delay of less than one millisecond, contemporary overviews ofSTP architecture and performance discuss message-routing times of tenmilliseconds or less as normal.

Efforts have been made to improve upon call handling systems, forexample as set forth in U.S. Pat. No. 5,737,404 to Segal. Other systemsinclude those depicted in PCT publications WO 9744962 and WO 9738537.

Clearly, it would be desirable to reduce the cost of STPs whileimproving their performance. These are objects of the present invention.

SUMMARY OF THE INVENTION

The present invention implements a CCS signaling link with inherentredundancy. A pair of devices appear to the CCS network nodes on eachend to be a point-to-point digital data link, that is, a normal CCSsignaling link. However, while the invention emulates a signaling linkfor the benefit of the network node to which it is attached, in factbetween a pair of devices implementing the invention, multiple transportmethods may be used to provide a redundant and diverse path. Thesemethods include the encapsulation of the CCS protocol, at one or morelayers, within other network protocols.

The present invention implements a Signal Transfer Point with a “virtualbackplane”. A typical STP implementation contains multiple front-endprocessors connected by a dedicated “backplane” message bus orspecial-purpose network (multiple buses or networks may be used forfault-tolerance) to one or more message routers and control processors.The present invention consists of one or more “encapsulating STPs”(“eSTP”s) which each implement all required STP functionality. A packetdata network using standard packet-switched data protocols, rather thana backplane bus or special-purpose network, connects the encapsulatingSTPs, and CCS messages are dynamically routed across the internal packetdata network to an appropriate eSTP for transmission to the appropriatenext-hop address. The entire group of eSTPs appears to be one STP to theCCS network, but on the internal packet data network each eSTP operatesas an autonomous message router for CCS traffic. Such a “virtualbackplane” STP may be configured minimally as a low-cost,high-performance STP with a limited number of links (a single eSTPunit), as a “traditional” STP with redundant “backplanes” and hundredsof links (using many eSTPs at the same physical location, with multiplehigh-speed local area networks such as FDDI or Gigabit Ethernet as theinternal data network), or as a “virtual STP”, which appears to be asingle STP to the CCS network but which is actually at multiple physicallocations, with a wide-area network serving as the internal packet datanetwork. The flexibility and modularity achieved by virtualizing thebackplane is thus apparent.

Certain prior art systems have been described as networks ofmicrocomputers or minicomputers which perform the STP function in adistributed fashion. The present invention far surpasses these prior artsystems in generality, flexibility, performance, and low cost, becauseof its fully virtualized nature and use of standard, rather thanspecial-purpose, networks and protocols. Rather than “distributing” theSTP function across a network of small systems each performing only partof the STP function, using a special-purpose message-backplane network,the present invention is fully functional with a single eSTP node orwith an arbitrarily large number of nodes. Further, the use of astandard computer data network as a backplane network enables topologiesinconcievable with prior art “distributed” STP implementations, forexample configurations in which eSTPs of the same CCS node are separatedby thousands of miles. The encapsulation of the CCS message traffic in ageneral-purpose network protocol (for example, TCP/IP) on one or moregeneral-purpose local-area or wide-area networks (such as an Ethernet ora TCP/IP internet) instead of its direct rotting onto a special-purposemessage-backplane network allows far more configurability, performance,and scalability (in both cost and functionality) than the prior artsystems, while eliminating the need for much special-purpose hardware.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of two CCS nodes connected using the presentinvention;

FIG. 2 is a diagram of a Message Transfer Part signal unit, withconsecutive octets arranged vertically from top to bottom;

FIG. 3 is a diagram showing physical and logical data connections in thepreferred embodiment of the invention

FIG. 4 is a functional block diagram showing a second embodiment of theinvention.

DETAILED DESCRIPTION OF THE INVENTION

We refer initially to FIG. 1 of the drawings.

The invention consists of a pair of Reliable Signaling Link Adapters102, 104 (“RSLA”s), a intermediate data network 103, and a synchronousserial link 106, 107 connected to each RSLA (for example, a V.35, DS0,DS1, RS449, T1, or E1 link). The RSLAs 102, 104 are hardware/softwaremachines which implement a protocol encapsulation/unencapsulation andoptimization (“spoofing”) process. An arbitrary CCS network node 101,105 is connected to the synchronous serial link connected to each RSLA;to the two CCS network nodes 101, 105, the serial links 106, 107, RSLAs102, 104, and the intermediate data network 103 appear to be a single,point-to-point synchronous serial link.

The communication between the RSLAs 102, 104 is symmetrical; that is,one RSLA 102 encapsulates traffic it receives on its synchronous seriallink 106, and sends it across the network 103 to the other RSLA 104,which unencapsulates it and transmits it on its synchronous serial link107; simultaneously, the second RSLA 104 receives traffic on itssynchronous serial link 107, encapsulates it, sends it across thenetwork 103 to the first RSLA 102, which unencapsulates it and transmitsit on its synchronous serial link 106.

Redundancy is provided by fail-over at either RSLA 102, 104 should itdetect a failure of network connectivity in the intermediate datanetwork 103. With connection-oriented network protocols, for example, afailure would be detected should the connection close. A failure mayalso be detected should latency in the network rise to unacceptablelevels, or should data loss or corruption be detected;

Testing means 510, 511 test the data network 103, thereby detectingfailures in the data network as described above.

An RSLA 102, 104, should it detect a failure of its connectivity to theother RSLA 104, 102 or to the intermediate data network 103 itself, willimmediately attempt to reestablish connectivity. Multiple connectivitymethods may be configured; for example, should an Ethernet link fail,connectivity might be restored via a satellite link. The connectivitymethods configured are limited only in that they must be supported bythe intermediate data network 103 in use. So long as any connectivitymethod is available, the RSLA 102, 104 will attempt to use it tomaintain or re-establish connectivity. In an embodiment thought to beparticularly advantageous, connectivity methods are assigned priorities;the method with the highest priority will always be used if available.This allows expensive switched data circuits, for example, to be usedonly if less costly leased lines (which would, in this example, have ahigher priority) are out of service.

The arrangement described thus contemplates what may be termed an“on-demand communications channel” which is established in the event offailure in the packet-switched communications channel. The on-demandcommunications channel may be ISDN.

Additional redundancy is provided by the underlying facilities of theintermediate data network 103. For example, in an Internet Protocol(“IP”) network, network failures are healed by automatic routingprocedures which reroute traffic using other paths in the network.Routers within the intermediate data network 103 may also automaticallyactivate or deactivate additional or backup network links or circuits asrequired. These methods are well-known to those skilled in the art; itis the encapsulation of the CCS network protocol in the protocol ofanother network (the intermediate data network 103) which enables theiruse to provide automatic redundancy for point-to-point CCS links.

In the preferred embodiment of the invention, referring now to FIG. 3,the link layer CCS protocol (in the present-day CCS, Message TransferPart, Level 2, “MTP”) is encapsulated in the Transmission ControlProtocol (“TCP”). Link-layer protocol packets are received on asynchronous serial link 302, encapsulated in TCP, and transmitted acrossa Transmission Control Protocol/Internet Protocol (“TCP/IP”) network 306to the other RSLA 304. At the other RSLA 304, the TCP stream 303 isreceived, divided into link layer CCS packets, and re-transmitted on asynchronous serial link 305.

In a less preferred embodiment, rather than directly encapsulating thelink layer CCS packets in a TCP/IP stream, Generic Route Encapsulation(“GRE”, an Internet Standard) may be used.

In another less preferred embodiment, User Datagram Protocol (“UDP”, anunreliable datagram protocol) encapsulation may be used.

In still another less preferred embodiment, direct Point to PointProtocol (“PPP”) encapsulation may be used.

In one embodiment, referring now to FIG. 1 of the drawings, theencapsulated data sent across the intermediate network 103 between theRSLAs 102, 104 is encrypted with one or more encryption algorithms; itis decrypted upon receipt. Data which does not decrypt correctly isdiscarded. In another embodiment, no encryption or decryption areperformed.

In one embodiment, data encryption is performed explicitly in the courseof the encapsulation process; for example, data is explicitly encryptedbefore being submitted to TCP for transmission. In another embodiment,it is performed implicitly by the network layers underlying the protocolin which the CCS data is encapsulated; for example, the CCS data mightbe encapsulated in GRE, and the GRE packets might be carried in IPdatagrams encrypted using the standard IPSEC protocols.

Referring now to FIGS. 2 and 3 of the drawings, to meet timingconstraints imposed by the architecture of the CCS network, as well asfor efficiency reasons, a protocol optimization or “spoofing” method maybe used at each synchronous serial link 302, 305; some packets may bediscarded or processed locally without ever being encapsulated ortransmitted across the data network 306.

The spoofing method is specific to the link-layer protocol in use, aswell as certain protocol options. The following is a discussion of thespoofing method used in the preferred embodiment, with the ANSI/BellcoreNational variant of MTP.

There are three types of MTP packets (or signal units), Message SignalUnits (“MSU”s), Link Status Signal Units (“LSSU”s), and Fill-In SignalUnits (“FISU”s). Fill-In Signal Units are used to maintain linksynchronization and reliability. MTP requires that they be transmittedon the synchronous serial link 302, 305 whenever there is nothing elseto transmit; this requirement is one of the major differences betweenMTP and most other synchronous link-layer protocols; most otherprotocols transmit only the “frame marker” or “FLAG” octet 201 (binary01111110) to maintain synchronization. The spoofing method discards allFISUs upon receipt; to maintain compliance with the MTP protocol, FISUsare transmitted on each synchronous serial link when there is no otherdata to send but they are not encapsulated and sent across the TCP/IPnetwork 306 when received; they are locally generated at each RSLA 301,304.

Link Status Signal Units have three functions: Link Alignment, which isverification that the link can transport valid 8-bit patterns (flags,status, etc.) to support the link-layer protocol, for fixed time periodswithout exceeding error thresholds, Flow Control, which controls receivebuffer congestion, and Processor Outage indication, which notifies thereceiver of the Processor Outage LSSU that the transmitter is sufferinga hardware or software failure.

Link Alignment LSSUs are not encapsulated or transmitted across theTCP/IP network 306 to the other RSLA 304, 301, if received on thesynchronous serial link 302, 305. Rather, the MTP link-start andlink-alignment procedures are performed locally by each RSLA 301, 304for its connected synchronous serial link 302, 305. It may be desirablefor the remote RSLA 304, 301 to receive notification that the seriallink on its partner 301, 304 has failed or restarted; two methods forthis are envisioned. In the first method, the failure of the serial link302 connected to an RSLA 301 causes that RSLA 301 whose link 302 hasfailed to drop the TCP connection 303 to the other RSLA 304. It willneither initiate a new TCP connection 303 nor accept one initiated bythe other RSLA 304 until the synchronous serial link 302 is restartedand MTP is in alignment. In the second method, a change in link statuscauses transmission of a “link status message” across a second, parallelTCP connection between the two RSLAs 301, 304; this message gives thecurrent link status (in alignment, out of alignment, carrier, nocarrier, etc.).

Flow Control LSSUs are similarly handled locally, by buffering data atthe RSLA 301, 304 which has received the Flow Control LSSU. They are notencapsulated or sent across the TCP/IP connection 303 to the remote RSLA304, 301. Processor Outage LSSUs are handled by, in one embodiment,sending a message across a second, parallel TCP connection (the same oneused in the corresponding embodiment for Link Alignment LSSUs above)indicating that a processor outage has occurred; in a second embodimentthe TCP connection 303 is dropped, and the RSLA 301, 304 which hasreceived the Processor Outage LSSU will neither initiate a new TCPconnection 303 nor accept one initiated by the remote RSLA 304, 301until the Processor Outage error condition has been cleared.

Outages of the TCP/IP connection 3t)3 may require LSSUs to be locallygenerated by an RSLA 301, 304. In this case, the RSLA 301, 304 willgenerate Flow Control, Link Alignment, or Processor Outage LSSUs (asappropriate) and transmit them on the connected synchronous serial link302, 305. Message Signal Units carry the actual data used at higherlevels of the CCS network protocol stack (for example, SignalingConnection Control Protocol (“SCCP”) Unit Data (“UDT”), IntegratedServices Digital Network User Part (“ISUP” or “ISD-NUP”), or TelephonyUser Part (“TUP”) messages) 206. Message Signal Units are the only MTPSignal Units which are always encapsulated and sent across the TCPconnection 303 to the remote RSLA 304, 301. However, even for MSUs, theentire signal unit received on the synchronous serial link is notnecessarily encapsulated and transmitted; nor is the MSU transmitted bythe RSLA 304 which has received it in encapsulated form on its TCPconnection 303, on its synchronous signaling link 305, necessarilyidentical to the one received by the RSLA 301 which encapsulated it andsent it across the TCP connection 303, on its synchronous signaling link302.

At least the FLAG octet 201 and Cyclic Redundancy Check (“CRC”) bits 207are always stripped from any MSU before encapsulation. The FLAG octet201, which marks the beginning of a signal unit in the bit-stream MTPprotocol, serves no purpose in the byte-stream TCP protocol. The 16-bit(two-octet) CRC sequence 207 is redundant because TCP itself guaranteesdata integrity.

The Forward Sequence Number 205 and Backward Sequence Number 203 (“FSN”,“BSN”) or each MSU are, in one embodiment, removed from the MSU beforeencapsulation; in another embodiment they are replaced with zero values.The FSN and BSN are managed locally at each RSLA 301, 304 in accordancewith the MTP protocol; that is, each new signal unit transmitted by aRSLA 301, 304 on its connected synchronous serial link 302, 305 willhave the next FSN 205 value (where “next” is defined as the last valuetransmitted plus one modulo 128 for a MSU, or the last valuetransmitted, for any non-MSU signal unit) inserted as its FSN 205, andthe last correctly received FSN 205 value (that is, the value of the FSN205 from the last MSU correctly received on the synchronous serial link302, 305) inserted as its BSN 203.

The Forward Indicator Bit 204 and Backward Indicator Bit 202 are, in oneembodiment, removed from the MSU before encapsulation; in anotherembodiment they are replaced with zero values. The FIB 204 and BIB 202are managed locally at each RSLA 301, 304 in accordance with the MTPprotocol; that is, each signal unit transmitted by a RSLA 301, 304 onits connected synchronous serial link 302, 305 will have the current FIB204 and BIB 202 values (binary “1” or “0” depending on link state)inserted as its FIB 204 and BIB 202.

It should be evident to one skilled in the art that the above proceduresare roughly equivalent to an implementation of MTP for a hybrid STP withone synchronous serial link and one TCP encapsulated CCS link. In fact,it is envisioned that the RSLA 102, 104 may function in the network asone or more STPs, in which case the MTP protocol will not be spoofed;rather, the pair of RSLAs 102, 104 will appear to be one or more STPs,instead of a mere synchronous serial link. One noteworthy differencebetween the spoofing method given above and the embodiment in which theRSLAs 102, 104 simply appear to the connected CCS network nodes 101, 105to be one or more STPs is related to the handling of Signaling LinkSelection (“SLS”); while an STP must perform SLS, and modify the SLSvalue in MSUs it handles, the RSLA 301, 304 does not modify the SLS ofMSUs when using the spoofing method given above; to do so would causeincorrect emulation of a point-to-point serial link, creating theappearance that at least one additional CCS network node had beeninserted in the message path.

In an alternative embodiment of the invention, what is provided is amachine for routing Message Transfer Part (“MTP”) or substantiallysimilar CCS messages; it is composed of hardware and software parts. Theprinciple components of the invention are one or more eSTPs and one ormore packet data networks, such as ethernet or FDDI networks. Each ofthese components has several internal sub-components; additionally, thepacket data networks operate generally according to the procedures ofone or more standard packet-switched network data protocols, such asInternet Protocol (version four or version six) (“IP”), AsynchronousTransfer Mode (“ATM”), Point-to-Point Protocol (“PPP”), or Ethernet.

The sub-components of the eSTP are at least as follows: A computerprocessor, means such as hard disk or flash memory for persistentprogram storage, random-access memory, a peripheral bus, one or moreinterfaces for connection to one or more packet-switched data networkssuch as Ethernet, ATM, or FDDI interface cards, one or more interfacesfor connection to synchronous serial communication links such as T1, E1,RS423, V.35, or DS0, message-routing software, routing-table managementsoftware, software for performing CCS “Global Title Translations” andmanaging associated tables, and software for handling exceptionalconditions. Optionally, hardware or software for performing dataencryption functions may be a sub-component of the eSTP. Additionalstandard hardware and software as generally found in a microcomputerrunning a multitasking operating system or substantial equivalent willbe present, for example an asynchronous serial “console port” fordebugging and control purposes, and system software for processmanagement and bootstrapping.

The sub-components of the data networks are as follows: network cabling,for example fiber optic or copper cable, one or more network routers orswitches (which are connected to each other and to the eSTPs by thenetwork cabling), for example Cisco Systems model 3620 routers or model5500 Ethernet switches, and one or more network protocols such as IEEES02.3 Ethernet, ATM, Transmission Control Protocol (“TCP”), GenericRoute Encapsulation (“GRE”), IP, or Open Systems Interconnect (“OSI”).In the preferred embodiment, these network protocols support a multicastmode, in which a packet may be addressed to a subset of the nodes (e.g.eSTPs or routers) connected to the network without having Lo betransmitted once per node. In a less preferred embodiment, the protocolssupport at least a broadcast mode, in which a packet may be addressed toall nodes connected to the network without having to be transmitted onceper node. In a still less preferred embodiment, the protocols of thedata network support neither a multicast nor a broadcast mode.

The invention is activated when a CCS message (typically, a MessageTransfer Part (“MTP”) Message Signal Unit (“MSU”)) is received on asynchronous serial link of an eSTP. The message is passed to the messagerouting software. The message routing software first compares thedestination point code (“DPC”, the CCS terminology for a destinationnetwork address) of the message to the signaling point code or pointcodes of the invention itself.

If the DPC of the message initially received on the synchronous seriallink is a point code of the invention (that is, it matches a CCS address(“point code”) assigned to the “virtual backplane STP” itself) themessage is either a message indicating exceptional conditions, orrequires Global Title Translation (“GTT”), a form of network addresstranslation. The GTT and exceptional conditions software components ofthe eSTP are described at the end of the description of normal messagehandling procedures (that is, procedures for messages whose DPC is notthat of the STP itself).

If the DPC of the message does not match a CCS point code assigned tothe invention, the message routing software searches for the DPC in arouting table, for example a hash table, LC trie, or radix trie. In thepreferred embodiment, the routing table is an LC trie, and the searchterminates at the node in the trie which represents the most exactmatch. The output of this search may be in one of two forms: it mayselect either a synchronous serial link on the same eSTP, or theaddress, in the addressing format of a network protocol in use on aninternal data network, of another eSTP. If the output of the search is asynchronous serial link on the same eSTP, the message is transmitted onthat synchronous serial link, thus completing message routing anddeactivating the invention. If the output of the search is the addressof another eSTP, the message is encapsulated in the protocol in use onthe internal data network (that is, the CCS message becomes the payload(the portion excluding the headers, checksum, and other controlinformation) of one or more messages of the internal data networkprotocol in use) and transmitted to the other eSTP. In one embodiment,the message is encrypted or otherwise reversibly transformed (forexample, compressed) before transmission; in another embodiment, thistransformation does not occur.

The encapsulated message is handled by the data network in accordancewith its protocol (for example, Ethernet frames may be switched based onIEEE 802.3 address by a network switch, or IP packets may be routed byan IP router) and thereby delivered to the eSTP whose address was theoutput of the routing-table search. That eSTP receives the encapsulatedmessage and reverses the encapsulation process and any reversibletransformation as discussed above (yielding a CCS message,unencapsulated in any other network protocol, exactly or substantiallyequivalent to the originally received message which activated theinvention) and then handles it in the same manner as the first eSTP tohandle the message (that is, the eSTP which received it on a synchronousserial interface) the message is received on the internal packet datanetwork interface, the DPC is examined and compared to those of theinvention itself, then looked-up in the routing table; the message isdisposed of as indicated in the routing table, in a preferredembodiment, messages are never retransmitted on the same interface onwhich they arrived; that is, messages received on a synchronous seriallink are never retransmitted on the same synchronous serial link, andmessages received on an interface to an internal packet data network arenever re-encapsulated and retransmitted on that same interface to thatsame internal packet data network; if this is the action indicated bythe routing table search, the message is simply discarded. In anotherembodiment, this special treatment is not applied. In one embodiment,the DPC of the message received from an internal packet data network isnot compared to those of the invention itself, and the message is notexamined to see whether or not Global Title Translation is required,because these steps would be redundant, having been performed by theinitial eSTP to receive the message on a synchronous serial interface.In another embodiment (as described earlier in this paragraph) thesesteps are performed and, after any message received on an internal datanetwork is unencapsulated and any reversible transformation is reversed,message handling is exactly as it would be had the message been receivedon a synchronous serial link.

In certain CCS signaling systems (for example, in the ANSI/BellcoreSignaling System number Seven (“SS7”) as well as other closely relatedsignaling systems) a field is present in the MTP header known as theSignaling Link Selection (“SLS”) field. When receiving such a CCSmessage, requirements for these CCS signaling systems specify that thevalue of the SLS field is to be used to select between multiplesignaling links with the same destination, if such multiple links arepresent. The SLS value is to be used to choose the synchronous seriallink to retransmit the message upon, modified in the manner specified inthe standard (for example, the Bellcore GR-246-CORE standard specifiesthat the contents of the field are to be rotated bitwise), and thismodified value is to be used (replacing the original field value in themessage as it was received) in the message which is ultimatelytransmitted on the appropriate synchronous serial link. When such SLSrequirements apply, the invention may apply various methods in order toconform. In one embodiment, there may be multiple copies of the routingtable, one per SLS value. In an alternate embodiment, the SLS may beused to select among multiple values returned by the routing tablelookup. In another embodiment, the SLS may be treated as part of theDPC, for example by appending it to the DPC after the least significantbit of the address. In yet another embodiment, the internal packet datanetwork addresses stored in the routing table may be multicastaddresses, and packets may be multicast to several eSTPs, beingprocessed only by the eSTP with the attached serial link correspondingto the correct SLS value. In still another embodiment, all links to aparticular destination may be aggregated on one or more eSTPs (therebyusing unicast or multicast addressing modes on the internal packet datanetwork), which will receive the packet and then select the appropriatelink accordingly. In one more embodiment, the SLS value may be ignored.Regardless of the embodiment used to select an eSTP or link to which totransmit the message based upon the original SLS value, the SLS value isalways modified (for example, by the Bellcore-specified bitwise rotationover five bits) by the final eSTP to handle the message, that is, by theeSTP which finally transmits it to another CCS node on a synchronousserial link.

It is possible to think of the STP formed by the eSTPs as a “cluster” ofeSTPs, each of which can independently route CCS messages, but whichshare one or more CCS point codes (also referred to as “signaling pointcodes” and, in the case of codes assigned to multiple nodes, “aliaspoint codes”) and act as one node to the CCS network. It is, of course,also possible to configure a set of eSTPs in multiple clusters, withmultiple CCS point codes, so that they will appear to be multiple nodes(multiple, separate STPs to the CCS network. In this case messagerouting is as above, except that an “internal data network” route for amessage may in send the encapsulated message to an eSTP which has adifferent signaling point code—or, in the “cluster” terminology, whichis “part of a different cluster”. This distinction is important tounderstand because of the mechanisms by which routing and Global TitleTranslation (“GTT”) table updates occur. While multiple eSTPs on thesame internal packet data network may exchange encapsulated CCS trafficas if they were part of the same CCS node (that is, CCS nodes whichimplement the invention may exchange traffic across the “internal packetdata network” as well as across the traditional synchronous seriallinks) such eSTPs share their routing table and GTT tables only witheSTPs which are in the same “cluster” or CCS node as themselves, thatis, only those eSTPs which share their same CCS signaling point codes.It is important to understand that multiple independent instances of theinvention may share a CCS “alias point code”; a “cluster” of eSTPsimplementing one instance of the invention must share all assigned pointcodes, not only alias point codes, and mere sharing of an alias pointcode does not mean that two eSTPs are in the same cluster.

Global Title Translation, in CCS, is a process in which “generic” ornon-specfic addresses may be used in CCS messages to address packets toservices for which the DPC is unknown by the message originator. Themessage is sent by the originator to an STP, with a flag in the messageindicating that GTT is required, and ancillary message data which willbe used by the GTT-performing STP to determine the specific destinationaddress for the message. The invention implements GTT, with enhancenentsover the common static-table implementation used by prior art STPs.

When an eSTP receives a message with the CCS DPC of the eSTP itself, andthat message has the appropriate values in the appropriate fields toindicate that GTT is required, the message is passed to the global titletranslation software on that eSTP. Each eSTP can perform GTT from localtables which map GTT values (typically calling/called party address andtranslation table number) to a new CCS destination address. In thisembodiment, the eSTP simply searches the table for a matching entry andinserts the appropriate values in the CCS message, which is thenforwarded as if it had been received in its new form on a synchronousserial link or internal packet data network interface (e.g. the new DPCis looked up in the routing table, etc.). If no matching entry is found,an new CCS message is generated indicating error, which is routed to theCCS node whose address was in the OPC (CCS source address) field of themessage requiring GTT. In this embodiment, the local GTT tables may beupdated by multicast messages from any other node on the internal packetdata network; these update messages may be cryptographically signed. Inanother embodiment, GTT lookup is performed using the distributed,cached database methods of the Domain Name Service (“DNS”), an InternetStandard. GTT tables are divided hierarchically (for example, bysuccessive digits or groups of digits within the Called Party Address).Each eSTP has a cache of recent GTT results; permanently resident inthis cache are the records (“hints”) for the top level of the DNShierarchy containing the GTT tables. When an eSTP requires a GTT tableentry which is not resident in its cache, it descends the DNS hierarchyused for GTT until it reaches a DNS server which has a matching entry,or until it discovers that there is no such entry. Entries thusretrieved (or which for which retrieval failed) are cached, resulting indramatically reduced network traffic and database query load forrepeated CCS messages requiring the name Global title translation.Message routing (or the generation and routing of an error message) isthe same for this embodiment as for the embodiment in which GTT isperformed from a table local to each eSTP. In this embodiment, clearlyDNS servers containing the GTT data are required. In one embodiment,every eSTP is a DNS server, containing all the required GTT data; two ormore eSTPs are designated (for example, manually or by election using abroadcast or multicast group on the internal data network) as the masterDNS servers, and the other eSTPs use normal DNS procedures tosynchronize to them. In another embodiment, a multicast group is used toelect multiple eSTPs to be DNS servers, and all other eSTPs cache dataonly. Should one of the DNS server eSTPs fail to respond to DNS queries,a new election is performed, with the aprropriate data transferred bynormal DNS methods from one or more of the surviving DNS servers. It isenvisioned that in still another embodiment, an automatic procedurewould distribute distinct data at each level of the hierarchy to atleast three eSTPs per DNS table, and dynamically construct thetop-of-hierarchy DNS “zone file”, which would be resident in every eSTP;in this embodiment an automatic equalization of query load between eSTPsin a cluster can be achieved, without the necessity of providing eacheSTP with a full copy of the GTT data.

The selection of a route for a particular CCS message, as discussedearlier, is performed by lookup in a table or other data structure, suchas an LC-trie, radix trie, or hash. The methods for performing such alookup are specific to each particular data structure and are well-knownto those skilled in the art. Similarly, insertion of particular routesin the routing table data structures is specific to each type of datastructure which might be used, and for each type is well-known to thoseskilled in the art. The generation and distribution of data to insert in(or remove from) the routing table data structure on each eSTP, however,is somewhat more complex.

Traditional CCS STPs have used “static routing tables”, that is, routingtables with entries which changed only when explicitly modified, forexample by logging in to the STP and modifying table values, or by usinga generally equivalent administrative interface. Though cumbersome andpotentially error-prone, this method is very simple. In one embodiment,the invention may have its routing table data maintained in this manner.In an embodiment thought to be particularly advantageous, however, theinvention uses a dynamic routing protocol to synchronize routinginformation between eSTPs. In this embodiment, each eSTP sendsinformation on its external neighbors (that is, other CCS nodes ornetworks to which it is connected) to the other eSTPs in the cluster.Each eSTP then uses its own local routing information (its knowledge ofits own neighbors) and the information received from the other eSTPs tocompute a comprehensive routing table. This process occurs periodically.

It is believed to be preferable to use a standard routing protocol suchas Open Shortest Path First (“OSPF”), Intermediate System-IntermediateSystem (“IS-IS”), Routing Information Protocol (“RIP”) or InteriorGateway Routing Protocol (“IGRP”) to share routing table informationbetween eSTPs and to maintain routing table information on each eSTP. Itis believed to be particularly advantageous to use a “link-state”protocol such as OSPF or IS-IS, where each eSTP computes a completegraph of connectivity for all eSTPs before modifying its routing tabledata structures, instead of a “distance-vector” protocol such as RIP orIGRP, but either type of routing protocol is acceptable for use with theinvention. The routing protocol used must support the addressing formatsin use on the CCS network (such as 24-bit ANSI/Bellcore SS7 point codes)and the internal data network (such as 32-bit IP version 4 addresses);this may require slight modification to an existing standard routingprotocol to render it suitable for use with the invention.

As is common with routers for other network protocols, routing datareceived from the routing protocol may be filtered, modified, oraugmented by locally maintained routing data (for example, “static”routes) before it is used to populate the routing table data structureused to route CCS messages. A typical algorithm is for an eSTP toadvertise its own neighbor nodes and networks to the other eSTPs (forexample, using OSPF over a multicast group on the internal datanetwork), receive advertisements sent by the other e-STPs, reconcilethose other eSTPs data with its own) data, including some set ofunadvertised static routes or other local rules for modification, thenuse that modified data to repopulate the routing table data structure.The repopulation may be whole or partial; that is, the entire datastructure may be replaced by a new data structure containing the newdata, or individual entries may be added, deleted, or modified toachieve the same result.

The final component of the invention is software for handling CCSmessages which indicate exceptional conditions. These messages may bemessages relating to error or restart conditions on a particularsynchronous serial link (for example, MTP Link Status Signal Units), ornotification messages relating to the state of other CCS network nodesor their links (for example, MTP Network Management (“MTP-NN”) messages)or other messages indicating exceptional conditions. Upon receipt ofsuch a message, it is forwarded to a software task in the local eSTPwhich processes such messages. That software task will first cause localeSTP behaviour to conform to CCS requirements for the exceptionalmessage in question (for example, by initiating link restart procedures,by shutting down the link in question, or by removing a remote CCS nodefrom the routing table) and then, for messages which are relevant toother eSTPs (such as MTP-NM Change Over or Change Back messages, whichmay require routing table changes in every eSTP) retransmits the messageon the appropriate internal packet data network, preferably as amulticast or broad-cast message. In a preferred embodiment, certainparticularly common or important messages for example, Change Over andChange Back) may not be retransmitted using the normal encapsulation forCCS messages, but rather may cause changes to data transmitted usinganother protocol, such as the dynamic routing protocol in use, if any.

Turning now to FIG. 4, what is shown is a functional block diagram of analternative embodiment of the invention. Voice switches or SSPs 400, 401are communicatively coupled via signaling links 402, 403 with eSTPs 405,406. Each eSTP may be coupled via additional signaling links toadditional SSPs, omitted for clarity from FIG. 4. In addition, each eSTPis coupled via respective communications channels 407, 409 to awide-area network 408, typically an internet. The wide-area network 408may preferably be a high-quality-of-service internet or may lesspreferably be the Internet. Dimension line 410 represents the largephysical separation that may well obtain between any two eSTPs 405, 406.It should be appreciated that in an exemplary embodiment there will benumerous additional eSTPs, omitted for clarity in FIG. 4.

Importantly, from the point of view of an arbitrarily selected SSP 400,401 its CCS communications are indistinguishable from those which wouldtake place were the SSP connected to a prior-art STP. Stating thisdifferently, two SSPs 400, 401 will communicate and function whenconnected as shown in FIG. 4 just as if they were connected to a singleSTP taking the place of virtual boundary 404. In this way, the eSTPs405, 406 and wide-area network 408 may be said to comprise a virtual STP404.

The present invention has been described with respect to severalvariations of possible embodiments which are not meant to and should notbe construed to limit the invention.

What is claimed is:
 1. A data communications system comprising first andsecond apparatus, each of said first and second apparatus having arespective port disposed for sending and receiving common channelsignaling data for telephone call processing, the first and secondapparatus connected by a packet-switched communications channel, saidchannel of a type routing messages over an arbitrary path comprisinghops including a final hop, said channel of a type in which the finalhop of a path is not fully known in advance; each of said first andsecond apparatus further comprising means receiving common channelsignaling data via its respective port, encapsulating said commonchannel signaling data in packets, and transmitting said packets to saidpacket-switched communications channel; each of said first and secondapparatus further comprising means receiving said packets from saidpacket-switched communications channel, extracting said common channelsignaling data from said packets, and transmitting said common channelsignaling data via its respective port; wherein the first and secondapparatus are further connected by an on-demand communications channel;each of said first and second apparatus further comprising means testingthe packet-switched communications channel, and responding to a failedtest of the packet-switched communications channel by establishing theon-demand communications channel; the means receiving common channelsignaling data via tie respective port of the first and second apparatusresponsive to the failed test by transmitting said encapsulated packetsto said on-demand communications channel; the means receiving saidpackets from said on-demand communications channel responsive to thefailed test by extracting said common channel signaling data from saidpackets, and transmitting said common channel signaling data via therespective ports of said first and second apparatus.
 2. The system ofclaim 1 wherein a failed test of the packet-switched communicationschannel comprises excessive latency in the packet-switchedcommunications channel.
 3. The system of claim 1 wherein the on-demandcommunications channel is ISDN.
 4. A method for use with a datacommunications system comprising first and second apparatus, each ofsaid first and second apparatus having a respective port disposed forsending and receiving common channel signaling data for telephone callprocessing, the first and second apparatus connected by apacket-switched communications channel, said channel of a type routingmessages over an arbitrary path comprising hops including a final hop,said channel of a type in which the final hop of a path is not fullyknown in advance; the method performed within each apparatus comprisingthe steps of receiving common channel signaling data via the respectiveport, encapsulating said common channel signaling data in packets, andtransmitting said packets to said packet-switched communicationschannel; said method performed within each apparatus further comprisingthe steps of receiving said packets from said packet-switchedcommunications channel, extracting said common channel signaling datafrom said packets, and transmitting said common channel signaling datavia the respective port; wherein the first and second apparatus arefurther connected by an on-demand communications channel; said methodfurther comprising the steps of testing the packet-switchedcommunications channel, responding to a failed test of thepacket-switched communications channel by establishing the on-demandcommunications channel; receiving common channel signaling data via therespective port of the first and second apparatus and transmitting saidencapsulated packets to said on-demand communications channel; receivingsaid packets from said on-demand communications channel and extractingsaid common channel signaling data from said packets, and transmittingsaid common channel signaling data via the respective ports of saidfirst and second apparatus.